The present invention relates to a program that installs other program or hardware components onto an industrial control device and, in particular, to a loader program that searches for missing resources needed by the components to be installed.
Industrial controllers are special-purpose computers used for controlling industrial processes and manufacturing equipment. Under the direction of a stored program, the industrial controller examines a series of inputs reflecting the status of the controlled process and changes the series of outputs controlling the industrial process. The inputs and outputs may be binary, that is on or off, or analog providing a value within a continuous range of values.
In the past industrial controllers had relatively fixed software and hardware configurations. By limiting changes in the configuration of the industrial controller and its subsystems, high reliability was obtained.
In contrast, in the area of personal computers, a much larger range of software and hardware configurations is tolerated. Such variation is accommodated by requiring the manufacturer of a component (hardware or software) to package the component together with all of their necessary program resources, for example, executables, drivers and linkable libraries, needed by the component. The manufacturer is also required to provide an install program that will install these resources on the target computer.
A number of problems arise with this latter approach. First, the component to be installed must be packaged with all necessary program resources even if it is expected that some or all of these resources will already be on the target computer. Second, the installer must typically load all or many of the associated resources onto the target computer whether they are required or not, as most install programs have limited ability to detect the resources already in place.
“Pushing” resources onto the target control device can create havoc with existing components that share the resources, particularly when new versions of existing resources are loaded over old versions with the same name. In many cases, an older resource will work differently or will have functions no longer supported in the new version. Many or most of the resources will not be needed for a particular installation, unnecessarily burdening the delivery of the component to the target computer.
If a critical resource is not available, the operating system will notify the user when the component is run, but the information is limited to a cryptic message about a required file not being found.